<?php
/**
 *  内容模型模型类
 */
namespace app\admin\model;
use think\Model;
use think\Db;
class ModelM extends Model
{
	protected $name = 'model';
    // 获取内容模型列表
    public function getList($UrlParam,$PageCount)
    {
        return $this->order('sorting asc,id ASC')
            ->paginate($PageCount,false,['query' => $UrlParam]);
    }

    // 获取模型名称
    public function getName($mcode)
    {
        return $this->where("mcode='$mcode'")->value('name');
    }

    // 获取内容模型选择
    public function getSelectAll()
    {
        return $this->field('mcode,name,type,listtpl,contenttpl')
            ->order('sorting asc,id ASC')
            ->select();
    }

    // 获取内容模型选择
    public function getModelMenu()
    {
		//$nodata=implode(',',$this->checkSortlk());
        return $this->field('mcode,name,type')
            ->where('status=1')
			//->where('id','not in',$nodata)
            ->order('sorting asc,id ASC')
            ->select();
    }

    // 获取模型内容数量
    public function getModelCount($mcode)
    {
        return Db::name('content')
			->alias('a')
			->field('count(*) as count')
            ->where("b.mcode='$mcode'")
			->join('content_sort b', 'a.scode=b.scode', 'left')
			->join('model d', 'b.mcode=d.mcode', 'left')
            ->find();
    }

    // 获取内容模型选择
    public function getSelect()
    {
        return $this->field('mcode,name,type,listtpl,contenttpl')
            ->where('status=1')
            ->order('id ASC')
            ->select();
    }

    // 查找内容模型
    public function findModel($field, $keyword)
    {
		$where=array();
		if(!empty($field)) $where["".$field.""]=['like','%'.trim($keyword).'%'];
		//$UrlParam[$field]=$keyword;
        return $this
			->where($where)
			->paginate($PageCount,false,['query' => $where]);
    }

    // 获取最后一个code
    public function getLastCode()
    {
        return $this->order('id DESC')->value('mcode');
    }

    // 获取内容模型详情
    public function getModel($id)
    {
        return $this->where("id=$id")->find();
    }

    // 添加内容模型
    public function addModel(array $data)
    {
        return $this->insert($data);
    }

    // 删除内容模型
    public function delModel($id)
    {
        $model = $this->where('id=' . $id)->find();
        if (Db::name('content_sort')->where("mcode='$model->mcode'")->find()) {
            alert('模型下面有栏目，不允许直接删除！','back');
        }
        return $this->where("id=$id")
            ->where("issystem=0")
            ->delete();
    }

    // 修改内容模型
    public function modModel($id, $data)
    {
        return $this
            ->where("id=$id")
            ->update($data);
    }

    // 检查URL名字冲突
    public function checkUrlname($urlname, $type, $where = array())
    {
        return $this->field('id')
            ->where("urlname='$urlname' AND type<>$type")
            ->where($where)
            ->find();
    }

    // 检查栏目名字冲突
    public function checkSortFilename($urlname)
    {
        return Db::name('content_sort')->field('id')
            ->where("filename","".$urlname."")
            ->find();
    }
	 // 检查是否有关联栏目模型
    public function checkSortlk()
    {
        return Db::name('content_sort')->distinct(true)
			 ->where("lkcode > 0")
            ->column('lkcode');
    }
}